/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.arquimedes.bo.alarma;

import java.util.Date;
import javax.persistence.EntityManager;
import org.arquimedes.jpa.util.JpaManager;
import org.arquimedes.jpa.Alarma;
import org.arquimedes.jpa.Sensor;
import org.arquimedes.jpa.Ubicacion;

/**
 *
 * @author jcsanchezr
 */
public class RecibirTramas {
    
    private static RecibirTramas solitario = null;

    public static RecibirTramas getServicio() {
        if(solitario == null)
            solitario = new RecibirTramas();
        return solitario;
    }
    
    
    /**
     * Recibe las tramas del sistema central para almacenarlas en BD
     * @param trama La trama que se desea almacenar
     */
    public void recibirTramas(String trama){
            int idCasa=trama.indexOf("-");
            guardarTrama(trama, trama.substring((idCasa+1)));
    }
    
    /**
     * Almacena la trama en la BD
     * @param trama
     * @param idCasa 
     */
    public void guardarTrama(String trama, String idCasa){
        int estado=Integer.parseInt(trama.charAt(0)+"");

	String sensorStr=trama.charAt(1)+"";

	String ubicacionStr=trama.substring(3, 5);
//      String objetoStr=trama.substring(5, 7);
//      String numPersona=trama.substring(7);
	
	EntityManager em=JpaManager.getEntityManager();
	
//	Objeto objeto=new Objeto();
//	objeto.setCodigoPk(Integer.parseInt(objetoStr));
	
	Sensor sensor=new Sensor();
	sensor.setCodigoPk(Integer.parseInt(sensorStr));

	Ubicacion ubicacion=new Ubicacion();
	ubicacion.setCodigoPk(Integer.parseInt(ubicacionStr));
	
	Alarma alarma=new Alarma();
	alarma.setSensor(sensor);
	alarma.setEstado(estado);
	alarma.setFechaHora(new Date());
	alarma.setUbicacion(ubicacion);
	
	System.out.println("Guardando alarma");
	em.persist(alarma);
	
    }
}
